package com.cqr.studentmanager.util;

import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
 * @author ElNino
 * @Title: SendMailUtil
 * @Package com.cqr.studentmanager.util
 * @Description:
 * @date 2020/4/9下午5:40
 */
public class SendMailUtil {

    //替换成自己的
    public final static String POSTMAIL = "741180483@qq.com";
    //替换成自己的
    public final static String PASSWORD = "eonpzpvaixzybbeg";

    public void sendMail(List<String> mailList,String title,String content) throws AddressException,MessagingException {
        Properties properties = new Properties();
        properties.put("mail.transport.protocol", "smtp");// 连接协议
        properties.put("mail.smtp.host", "smtp.qq.com");// 主机名
        properties.put("mail.smtp.port", 465);// 端口号
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用
        properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息
        InternetAddress[] addresses = new InternetAddress[mailList.size()];
        for(int i=0;i < mailList.size();i++){
            InternetAddress address = new InternetAddress();
            address.setAddress(mailList.get(i));
            addresses[i] = address;
        }
        // 得到回话对象
        Session session = Session.getInstance(properties);
        // 获取邮件对象
        Message message = new MimeMessage(session);
        // 设置发件人邮箱地址
        message.setFrom(new InternetAddress(POSTMAIL));
        // 设置收件人邮箱地址
        message.setRecipients(Message.RecipientType.TO, addresses);
        //message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com"));//一个收件人
        // 设置邮件标题
        message.setSubject(title);
        // 设置邮件内容
        message.setText(content);
        // 得到邮差对象
        Transport transport = session.getTransport();
        // 连接自己的邮箱账户
        transport.connect(POSTMAIL, PASSWORD);// 密码为QQ邮箱开通的stmp服务后得到的客户端授权码
        // 发送邮件
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
}
